package com.niiwoo.civet.account.dto.request;

import com.niiwoo.civet.account.dto.common.MoneyTotalDTO;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 债转确认成功记账请求DTO
 */
@Getter
@Setter
public class CreditorTransferConfirmSuccessAccountingRequestDTO implements Serializable {
    private static final long serialVersionUID = 6089895403817617927L;

    /**
     * 债权出让明细ID
     */
    private Long creditorSaleDetailId;
    /**
     * 标的ID
     */
    private Long projectId;

    /**
     * 标的来源
     */
    private Byte fromSource;

    /**
     * 业务类型(对应t_tc_project表type字段)
     */
    private Byte projectType;

    /**
     * 出让人userId
     */
    private String saleUserId;

    /**
     * 出让人手机号码
     */
    private String saleMobile;

    /**
     * 出让人accountId
     */
    private Long saleAccountId;

    /**
     * 出让价格
     */
    private BigDecimal saleAmount;

    /**
     * 出让份额
     */
    private BigDecimal share;

    /**
     * 出让手续费
     */
    private BigDecimal expenseAmount;

    private String requestNo;

    /**
     * 出让人投资收益
     */
    private MoneyTotalDTO investIncome;

    /**
     * 出让手续费
     */
    private MoneyTotalDTO creditorSaleFee;

    /**
     * 投资累计(投资人投资金额累计)
     */
    private List<MoneyTotalDTO> investTotal;

    /**
     * 投资冻结(投资人投资冻结金额解冻)
     */
    private List<MoneyTotalDTO> investFreeze;

    /**
     * 待收本息(出让人待收本息减，投资人[受让人]待收本息增加)
     */
    private List<MoneyTotalDTO> dueInCapitalInterest;

    /**
     * 投资成功账单
     */
    private List<InvestSuccessBill> investSuccessBillList;

    /**
     * 投资成功账单
     */
    @Getter
    @Setter
    public static class InvestSuccessBill implements Serializable {

        private static final long serialVersionUID = -8381970818020578352L;

        private String userId;

        private Long investOrderId;
    }
}
